#ifndef GUISH_HPP
#define GUISH_HPP

#include "config.h"
#include "guish_classproto.hpp"
#include "shared_classproto.hpp"

#include "Interpreter.hpp"

#include "ClientConnection.hpp"
#include "CommandLineOptions.hpp"
#include "Environment.hpp"
#include "EventManager.hpp"
#include "ExecutionEnvironment.hpp"
#include "FileReceiver.hpp"
#include "FileSender.hpp"
#include "IOManager.hpp"
#include "Ls.hpp"
#include "Process.hpp"
#include "ProcessManager.hpp"
#include "PseudoTerminal.hpp"
#include "PtyManager.hpp"
#include "RPC.hpp"
#include "Shell.hpp"
#include "ShellUtil.hpp"

// From ../shared
#include "LsCommand.hpp"
#include "StreamBuffer.hpp"
#include "TaggedString.hpp"
#include "Trace.hpp"
#include "UnitTest.hpp"
#include "Util.hpp"

void initProtocol();
int main(int argc, char **argv);
void eventLoop(ClientConnection *client);;
void handleEvent(Event *event);;

#endif
